﻿/**

 * jQuery EasyUI 1.2.5

 * 

 * Licensed under the GPL terms

 * To use it on other terms please contact us

 *

 * Copyright(c) 2009-2011 stworthy [ stworthy@gmail.com ] 

 * 

 */

(function($) {
	function _1(_2) {
		var _3 = $.data(_2, "treegrid").options;
		$(_2).datagrid($.extend({}, _3, {
					url : null,
					onLoadSuccess : function() {
					},
					onResizeColumn : function(_4, _5) {
						_14(_2);
						_3.onResizeColumn.call(_2, _4, _5);
					},
					onSortColumn : function(_6, _7) {
						_3.sortName = _6;
						_3.sortOrder = _7;
						if (_3.remoteSort) {
							_13(_2);
						} else {
							var _8 = $(_2).treegrid("getData");
							_3b(_2, 0, _8);
						}
						_3.onSortColumn.call(_2, _6, _7);
					},
					onBeforeEdit : function(_9, _a) {
						if (_3.onBeforeEdit.call(_2, _a) == false) {
							return false;
						}
					},
					onAfterEdit : function(_b, _c, _d) {
						_28(_2);
						_3.onAfterEdit.call(_2, _c, _d);
					},
					onCancelEdit : function(_e, _f) {
						_28(_2);
						_3.onCancelEdit.call(_2, _f);
					}
				}));
		if (_3.pagination) {
			var _10 = $(_2).datagrid("getPager");
			_10.pagination({
						pageNumber : _3.pageNumber,
						pageSize : _3.pageSize,
						pageList : _3.pageList,
						onSelectPage : function(_11, _12) {
							_3.pageNumber = _11;
							_3.pageSize = _12;
							_13(_2);
						}
					});
			_3.pageSize = _10.pagination("options").pageSize;
		}
	};
	function _14(_15, _16) {
		var _17 = $.data(_15, "datagrid").options;
		var _18 = $.data(_15, "datagrid").panel;
		var _19 = _18.children("div.datagrid-view");
		var _1a = _19.children("div.datagrid-view1");
		var _1b = _19.children("div.datagrid-view2");
		if (_17.rownumbers
				|| (_17.frozenColumns && _17.frozenColumns.length > 0)) {
			if (_16) {
				_1c(_16);
				_1b.find("tr[node-id=" + _16 + "]").next("tr.treegrid-tr-tree")
						.find("tr[node-id]").each(function() {
									_1c($(this).attr("node-id"));
								});
			} else {
				_1b.find("tr[node-id]").each(function() {
							_1c($(this).attr("node-id"));
						});
				if (_17.showFooter) {
					var _1d = $.data(_15, "datagrid").footer || [];
					for (var i = 0; i < _1d.length; i++) {
						_1c(_1d[i][_17.idField]);
					}
					$(_15).datagrid("resize");
				}
			}
		}
		if (_17.height == "auto") {
			var _1e = _1a.children("div.datagrid-body");
			var _1f = _1b.children("div.datagrid-body");
			var _20 = 0;
			var _21 = 0;
			_1f.children().each(function() {
						var c = $(this);
						if (c.is(":visible")) {
							_20 += c.outerHeight();
							if (_21 < c.outerWidth()) {
								_21 = c.outerWidth();
							}
						}
					});
			if (_21 > _1f.width()) {
				_20 += 18;
			}
			_1e.height(_20);
			_1f.height(_20);
			_19.height(_1b.height());
		}
		_1b.children("div.datagrid-body").triggerHandler("scroll");
		function _1c(_22) {
			var tr1 = _1a.find("tr[node-id=" + _22 + "]");
			var tr2 = _1b.find("tr[node-id=" + _22 + "]");
			tr1.css("height", "");
			tr2.css("height", "");
			var _23 = Math.max(tr1.height(), tr2.height());
			tr1.css("height", _23);
			tr2.css("height", _23);
		};
	};
	function _24(_25) {
		var _26 = $.data(_25, "treegrid").options;
		if (!_26.rownumbers) {
			return;
		}
		$(_25)
				.datagrid("getPanel")
				.find("div.datagrid-view1 div.datagrid-body div.datagrid-cell-rownumber")
				.each(function(i) {
							var _27 = i + 1;
							$(this).html(_27);
						});
	};
	function _28(_29) {
		var _2a = $.data(_29, "treegrid").options;
		var _2b = $(_29).datagrid("getPanel");
		var _2c = _2b.find("div.datagrid-body");
		_2c.find("span.tree-hit").unbind(".treegrid").bind("click.treegrid",
				function() {
					var tr = $(this).parent().parent().parent();
					var id = tr.attr("node-id");
					_94(_29, id);
					return false;
				}).bind("mouseenter.treegrid", function() {
					if ($(this).hasClass("tree-expanded")) {
						$(this).addClass("tree-expanded-hover");
					} else {
						$(this).addClass("tree-collapsed-hover");
					}
				}).bind("mouseleave.treegrid", function() {
					if ($(this).hasClass("tree-expanded")) {
						$(this).removeClass("tree-expanded-hover");
					} else {
						$(this).removeClass("tree-collapsed-hover");
					}
				});
		_2c.find("tr[node-id]").unbind(".treegrid").bind("mouseenter.treegrid",
				function() {
					var id = $(this).attr("node-id");
					_2c.find("tr[node-id=" + id + "]")
							.addClass("datagrid-row-over");
				}).bind("mouseleave.treegrid", function() {
			var id = $(this).attr("node-id");
			_2c.find("tr[node-id=" + id + "]").removeClass("datagrid-row-over");
		}).bind("click.treegrid", function() {
					var id = $(this).attr("node-id");
					if (_2a.singleSelect) {
						_2f(_29);
						_7e(_29, id);
					} else {
						if ($(this).hasClass("datagrid-row-selected")) {
							_82(_29, id);
						} else {
							_7e(_29, id);
						}
					}
					
//					//dnd zzy+
//					var uuid = $(this).attr("uuid");
//					if(!_2a[uuid]){
//						alert(uuid);
//						initDD($(this).parent().children());
//						_2a[uuid] = true;
//					}
//					
//					function initDD(target){
//						alert(target.length)
//						var indicator = $('<div class="indicator">>></div>').appendTo('body'); 
//						target.draggable({
//							revert:true,
//							deltaX:0,
//							deltaY:0
//						}).droppable({
//							onDragOver:function(e,source){
//								indicator.css({
//									display:'block',
//									top:$(this).offset().top+$(this).outerHeight()-5
//								});
//							},
//							onDragLeave:function(e,source){
//								indicator.hide();
//							},
//							onDrop:function(e,source){
//								$(source).insertAfter(this);
//								indicator.hide();
//							}
//						});		 
//					}
					
					_2a.onClickRow.call(_29, _46(_29, id));
					_2a.onSelect.call(_29, _46(_29, id));
				}).bind("dblclick.treegrid", function() {
					var id = $(this).attr("node-id");
					_2a.onDblClickRow.call(_29, _46(_29, id));
				}).bind("contextmenu.treegrid", function(e) {
					var id = $(this).attr("node-id");
					_2a.onContextMenu.call(_29, e, _46(_29, id));
				});
		_2c.find("div.datagrid-cell-check input[type=checkbox]")
				.unbind(".treegrid").bind("click.treegrid", function(e) {
					var id = $(this).parent().parent().parent().attr("node-id");
					if (_2a.singleSelect) {
						_2f(_29);
						_7e(_29, id);
					} else {
						if ($(this).attr("checked")) {
							_7e(_29, id);
						} else {
							_82(_29, id);
						}
					}
					e.stopPropagation();
				});
		var _2d = _2b.find("div.datagrid-header");
		_2d.find("input[type=checkbox]").unbind().bind("click.treegrid",
				function() {
					if (_2a.singleSelect) {
						return false;
					}
					if ($(this).attr("checked")) {
						_2e(_29);
					} else {
						_2f(_29);
					}
				});
	};
	function _30(_31, _32) {
		var _33 = $.data(_31, "treegrid").options;
		var _34 = $(_31).datagrid("getPanel").children("div.datagrid-view");
		var _35 = _34.children("div.datagrid-view1");
		var _36 = _34.children("div.datagrid-view2");
		var tr1 = _35.children("div.datagrid-body").find("tr[node-id=" + _32
				+ "]");
		var tr2 = _36.children("div.datagrid-body").find("tr[node-id=" + _32
				+ "]");
		var _37 = $(_31).datagrid("getColumnFields", true).length
				+ (_33.rownumbers ? 1 : 0);
		var _38 = $(_31).datagrid("getColumnFields", false).length;
		_39(tr1, _37);
		_39(tr2, _38);
		function _39(tr, _3a) {
			$("<tr class=\"treegrid-tr-tree\">"
					+ "<td style=\"border:0px\" colspan=\"" + _3a + "\">"
					+ "<div></div>" + "</td>" + "</tr>").insertAfter(tr);
		};
	};
	
	/**
	 * 处理数据，渲染组件
	 */
	function _3b(_3c, _3d, _3e/*渲染值*/, _3f) {
		var _40 = $.data(_3c, "treegrid").options;
		_3e = _40.loadFilter.call(_3c, _3e, _3d);
		var _41 = $.data(_3c, "datagrid").panel;
		var _42 = _41.children("div.datagrid-view");
		var _43 = _42.children("div.datagrid-view1");
		var _44 = _42.children("div.datagrid-view2");
		var _45 = _46(_3c, _3d);
		if (_45) {
			var _47 = _43.children("div.datagrid-body").find("tr[node-id="
					+ _3d + "]");
			var _48 = _44.children("div.datagrid-body").find("tr[node-id="
					+ _3d + "]");
			var cc1 = _47.next("tr.treegrid-tr-tree").children("td")
					.children("div");
			var cc2 = _48.next("tr.treegrid-tr-tree").children("td")
					.children("div");
		} else {
			var cc1 = _43.children("div.datagrid-body")
					.children("div.datagrid-body-inner");
			var cc2 = _44.children("div.datagrid-body");
		}
		if (!_3f) {
			$.data(_3c, "treegrid").data = [];
			cc1.empty();
			cc2.empty();
		}
		if (_40.view.onBeforeRender) {
			_40.view.onBeforeRender.call(_40.view, _3c, _3d, _3e);
		}
		_40.view.render.call(_40.view, _3c, cc1, true);
		_40.view.render.call(_40.view, _3c, cc2, false);
		if (_40.showFooter) {
			_40.view.renderFooter.call(_40.view, _3c, _43
							.find("div.datagrid-footer-inner"), true);
			_40.view.renderFooter.call(_40.view, _3c, _44
							.find("div.datagrid-footer-inner"), false);
		}
		if (_40.view.onAfterRender) {
			_40.view.onAfterRender.call(_40.view, _3c);
		}
		_40.onLoadSuccess.call(_3c, _45, _3e);
		if (!_3d && _40.pagination) {	// 分页信息加载
			var _49 = $.data(_3c, "treegrid").total;
			var _4a = $(_3c).datagrid("getPager");
			if (_4a.pagination("options").total != _49) {
				_4a.pagination({
							total : _49
						});
			}
		}
		_14(_3c);
		_24(_3c);
		_4b();
		_28(_3c);
		function _4b() {
			var _4c = _42.find("div.datagrid-header");
			var _4d = _42.find("div.datagrid-body");
			var _4e = _4c.find("div.datagrid-header-check");
			if (_4e.length) {
				var ck = _4d.find("div.datagrid-cell-check");
				if ($.boxModel) {
					ck.width(_4e.width());
					ck.height(_4e.height());
				} else {
					ck.width(_4e.outerWidth());
					ck.height(_4e.outerHeight());
				}
			}
		};
		
		//zzy+ 对于expand:true的行进行扩展 
		if(_3e['rows']){
			var rows = _3e['rows'];
			var idField = _40['idField'];
			for (var index = 0; index < rows.length; index++) {
				var row = rows[index];
				if(row['expand'] == true){
					$(_3c).treegrid('expand', row[idField]);					
				}
			}
		}
	};
	
	// ajax请求   ==> 加载数据
	function _13(_4f, _50, _51, _52, _53) {
		var _54 = $.data(_4f, "treegrid").options;
		var _55 = $(_4f).datagrid("getPanel").find("div.datagrid-body");
		
		// zzy+  动态参数修改
//		if (_51) {
//			_54.queryParams = _51;
//		}
		_54.queryParams = _54.queryParams || {};
		var param = $.isFunction(_54.queryParams) ? _54.queryParams() : _54.queryParams;
//		var _56 = $.extend({}, _54.queryParams);
		var _56 = $.extend( _51||{}, param||{});
		
		//  如果第一次加载,并且有root，则直接渲染数据
		if(_51== null && $.isObject(_54['root'])){
			_3b(_4f, _50, {rows:[_54['root']]}, _52);
			return;
		}
		
		if (_54.pagination) {
			$.extend(_56, {
						page : _54.pageNumber,
						rows : _54.pageSize
					});
		}
		if (_54.sortName) {
			$.extend(_56, {
						sort : _54.sortName,
						order : _54.sortOrder
					});
		}
		var row = _46(_4f, _50);
		if (_54.onBeforeLoad.call(_4f, row, _56) == false) {
			return;
		}
		/*if (!_54.url) {
			return;
		}*/
		var _57 = _55.find("tr[node-id=" + _50 + "] span.tree-folder");
		_57.addClass("tree-loading");
		$(_4f).treegrid("loading");
		
		// zzy+ 用通用的ajax组件$.query
		$.query(_54.list, _56, function(_58){
			_58 = $.decode(_58); // zzy+ 是个BUG
			if(_56 && $.isArray(_58['rows'])){
				var rows = _58['rows'];
				for (var index = 0; index < rows.length; index++) {
					var row = rows[index];
					// 遍历加载的数据
					_54.eachLoadData.call(_4f, row, index);
					
					if(!row['iconCls']){
						row['iconCls'] = 'icon-tree-folder';
					}
					if(!row['parentId']){
						row['parentId'] = _56[_54['idField']];
					}
					if(!row['state']){
						row['state'] = 'closed';
					}
					row['checkbox'] = true;
				}
			}
			
			_57.removeClass("tree-loading");
			$(_4f).treegrid("loaded");
			_3b(_4f, _50, _58, _52);
			if (_53) {
				_53();
			}
		},function() {
			_57.removeClass("tree-loading");
			$(_4f).treegrid("loaded");
			_54.onLoadError.apply(_4f, arguments);
			if (_53) {
				_53();
			}
		});
		
//		$.ajax({
//					type : _54.method,
//					url : _54.url,
//					data : _56,
//					dataType : "json",
//					success : function(_58) {
//						_58 = $.decode(_58); // zzy+ 是个BUG
//						_57.removeClass("tree-loading");
//						$(_4f).treegrid("loaded");
//						_3b(_4f, _50, _58, _52);
//						if (_53) {
//							_53();
//						}
//					},
//					error : function() {
//						_57.removeClass("tree-loading");
//						$(_4f).treegrid("loaded");
//						_54.onLoadError.apply(_4f, arguments);
//						if (_53) {
//							_53();
//						}
//					}
//				});
	};
	function _59(_5a) {
		var _5b = _5c(_5a);
		if (_5b.length) {
			return _5b[0];
		} else {
			return null;
		}
	};
	function _5c(_5d) {
		return $.data(_5d, "treegrid").data;
	};
	
	/**
	 * 获取父节点的id
	 */
//	function processRow(jq, row){
//		// 如果没有配置，则默认使用_parentId属性
//		if(!$.isEmpty(row['_parentId'])){
//			return row
//		};
//		
//		var parentField = $.data(jq, "treegrid").options['parentField'];
//		
//		// 如果字段是对象形式，则获取
//		if(parentField.indexOf('.')!=-1){
//					
//		}else{
//			row['_parentId'] = row[parentField];
//		}
//		
//		
//		if($.isObject(row[parentField])){
//			row['_parentId'] = $.beanVal(row[parentField], ); 
//		}else{
//			row['_parentId'] = row[parentField]; 
//		}
//		
//		
//		return row;
//	}
	
	function _5e(_5f, _60) {
		var row = _46(_5f, _60);
		if (row.parentId) {
			return _46(_5f, row.parentId);
		} else {
			return null;
		}
	};
	function _61(_62, _63) {
		var _64 = $.data(_62, "treegrid").options;
		var _65 = $(_62).datagrid("getPanel")
				.find("div.datagrid-view2 div.datagrid-body");
		var _66 = [];
		if (_63) {
			_67(_63);
		} else {
			var _68 = _5c(_62);
			for (var i = 0; i < _68.length; i++) {
				_66.push(_68[i]);
				_67(_68[i][_64.idField]);
			}
		}
		function _67(_69) {
			var _6a = _46(_62, _69);
			if (_6a && _6a.children) {
				for (var i = 0, len = _6a.children.length; i < len; i++) {
					var _6b = _6a.children[i];
					_66.push(_6b);
					_67(_6b[_64.idField]);
				}
			}
		};
		return _66;
	};
	function _6c(_6d) {
		var _6e = _6f(_6d);
		if (_6e.length) {
			return _6e[0];
		} else {
			return null;
		}
	};
	function _6f(_70) {
		var _71 = [];
		var _72 = $(_70).datagrid("getPanel");
		_72
				.find("div.datagrid-view2 div.datagrid-body tr.datagrid-row-selected")
				.each(function() {
							var id = $(this).attr("node-id");
							_71.push(_46(_70, id));
						});
		return _71;
	};
	function _73(_74, _75) {
		if (!_75) {
			return 0;
		}
		var _76 = $.data(_74, "treegrid").options;
		var _77 = $(_74).datagrid("getPanel").children("div.datagrid-view");
		var _78 = _77.find("div.datagrid-body tr[node-id=" + _75 + "]")
				.children("td[field=" + _76.treeField + "]");
		return _78.find("span.tree-indent,span.tree-hit").length;
	};
	function _46(_79, _7a) {
		var _7b = $.data(_79, "treegrid").options;
		var _7c = $.data(_79, "treegrid").data;
		var cc = [_7c];
		while (cc.length) {
			var c = cc.shift();
			for (var i = 0; i < c.length; i++) {
				var _7d = c[i];
				if (_7d[_7b.idField] == _7a) {
					return _7d;
				} else {
					if (_7d["children"]) {
						cc.push(_7d["children"]);
					}
				}
			}
		}
		return null;
	};
	function _7e(_7f, _80) {
		var _81 = $(_7f).datagrid("getPanel").find("div.datagrid-body");
		var tr = _81.find("tr[node-id=" + _80 + "]");
		tr.addClass("datagrid-row-selected");
		tr.find("div.datagrid-cell-check input[type=checkbox]").attr("checked",
				true);
	};
	function _82(_83, _84) {
		var _85 = $(_83).datagrid("getPanel").find("div.datagrid-body");
		var tr = _85.find("tr[node-id=" + _84 + "]");
		tr.removeClass("datagrid-row-selected");
		tr.find("div.datagrid-cell-check input[type=checkbox]").attr("checked",
				false);
	};
	function _2e(_86) {
		var tr = $(_86).datagrid("getPanel")
				.find("div.datagrid-body tr[node-id]");
		tr.addClass("datagrid-row-selected");
		tr.find("div.datagrid-cell-check input[type=checkbox]").attr("checked",
				true);
	};
	function _2f(_87) {
		var tr = $(_87).datagrid("getPanel")
				.find("div.datagrid-body tr[node-id]");
		tr.removeClass("datagrid-row-selected");
		tr.find("div.datagrid-cell-check input[type=checkbox]").attr("checked",
				false);
	};
	function _88(_89, _8a) {
		var _8b = $.data(_89, "treegrid").options;
		var _8c = $(_89).datagrid("getPanel").find("div.datagrid-body");
		var row = _46(_89, _8a);
		var tr = _8c.find("tr[node-id=" + _8a + "]");
		var hit = tr.find("span.tree-hit");
		if (hit.length == 0) {
			return;
		}
		if (hit.hasClass("tree-collapsed")) {
			return;
		}
		if (_8b.onBeforeCollapse.call(_89, row) == false) {
			return;
		}
		hit.removeClass("tree-expanded tree-expanded-hover")
				.addClass("tree-collapsed");
		hit.next().removeClass("tree-folder-open");
		row.state = "closed";
		tr = tr.next("tr.treegrid-tr-tree");
		var cc = tr.children("td").children("div");
		if (_8b.animate) {
			cc.slideUp("normal", function() {
						_14(_89, _8a);
						_8b.onCollapse.call(_89, row);
					});
		} else {
			cc.hide();
			_14(_89, _8a);
			_8b.onCollapse.call(_89, row);
		}
	};
	function _8d(_8e, _8f) {
		var _90 = $.data(_8e, "treegrid").options;
		var _91 = $(_8e).datagrid("getPanel").find("div.datagrid-body");
		var tr = _91.find("tr[node-id=" + _8f + "]");
		var hit = tr.find("span.tree-hit");
		var row = _46(_8e, _8f);
		if (hit.length == 0) {
			return;
		}
		if (hit.hasClass("tree-expanded")) {
			return;
		}
		if (_90.onBeforeExpand.call(_8e, row) == false) {
			return;
		}
		hit.removeClass("tree-collapsed tree-collapsed-hover")
				.addClass("tree-expanded");
		hit.next().addClass("tree-folder-open");
		var _92 = tr.next("tr.treegrid-tr-tree");
		if (_92.length) {
			var cc = _92.children("td").children("div");
			_93(cc);
		} else {
			_30(_8e, row[_90.idField]);
			var _92 = tr.next("tr.treegrid-tr-tree");
			var cc = _92.children("td").children("div");
			cc.hide();
			_13(_8e, row[_90.idField], {
						id : row[_90.idField]
					}, true, function() {
						_93(cc);
					});
		}
		function _93(cc) {
			row.state = "open";
			if (_90.animate) {
				cc.slideDown("normal", function() {
							_14(_8e, _8f);
							_90.onExpand.call(_8e, row);
						});
			} else {
				cc.show();
				_14(_8e, _8f);
				_90.onExpand.call(_8e, row);
			}
		};
	};
	function _94(_95, _96) {
		var _97 = $(_95).datagrid("getPanel").find("div.datagrid-body");
		var tr = _97.find("tr[node-id=" + _96 + "]");
		var hit = tr.find("span.tree-hit");
		if (hit.hasClass("tree-expanded")) {
			_88(_95, _96);
		} else {
			_8d(_95, _96);
		}
	};
	function _98(_99, _9a) {
		var _9b = $.data(_99, "treegrid").options;
		var _9c = _61(_99, _9a);
		if (_9a) {
			_9c.unshift(_46(_99, _9a));
		}
		for (var i = 0; i < _9c.length; i++) {
			_88(_99, _9c[i][_9b.idField]);
		}
	};
	function _9d(_9e, _9f) {
		var _a0 = $.data(_9e, "treegrid").options;
		var _a1 = _61(_9e, _9f);
		if (_9f) {
			_a1.unshift(_46(_9e, _9f));
		}
		for (var i = 0; i < _a1.length; i++) {
			_8d(_9e, _a1[i][_a0.idField]);
		}
	};
	function _a2(_a3, _a4) {
		var _a5 = $.data(_a3, "treegrid").options;
		var ids = [];
		var p = _5e(_a3, _a4);
		while (p) {
			var id = p[_a5.idField];
			ids.unshift(id);
			p = _5e(_a3, id);
		}
		for (var i = 0; i < ids.length; i++) {
			_8d(_a3, ids[i]);
		}
	};
	function _a6(_a7, _a8) {
		var _a9 = $.data(_a7, "treegrid").options;
		if (_a8.parent) {
			var _aa = $(_a7).datagrid("getPanel").find("div.datagrid-body");
			var tr = _aa.find("tr[node-id=" + _a8.parent + "]");
			if (tr.next("tr.treegrid-tr-tree").length == 0) {
				_30(_a7, _a8.parent);
			}
			var _ab = tr.children("td[field=" + _a9.treeField + "]")
					.children("div.datagrid-cell");
			var _ac = _ab.children("span.tree-icon");
			if (_ac.hasClass("tree-file")) {
				_ac.removeClass("tree-file").addClass("tree-folder");
				var hit = $("<span class=\"tree-hit tree-expanded\"></span>")
						.insertBefore(_ac);
				if (hit.prev().length) {
					hit.prev().remove();
				}
			}
		}
		_3b(_a7, _a8.parent, _a8.data, true);
	};
	function _ad(_ae, _af) {
		var _b0 = $.data(_ae, "treegrid").options;
		var _b1 = $(_ae).datagrid("getPanel").find("div.datagrid-body");
		var tr = _b1.find("tr[node-id=" + _af + "]");
		tr.next("tr.treegrid-tr-tree").remove();
		tr.remove();
		var _b2 = del(_af);
		if (_b2) {
			if (_b2.children.length == 0) {
				tr = _b1.find("tr[node-id=" + _b2[_b0.treeField] + "]");
				var _b3 = tr.children("td[field=" + _b0.treeField + "]")
						.children("div.datagrid-cell");
				_b3.find(".tree-icon").removeClass("tree-folder")
						.addClass("tree-file");
				_b3.find(".tree-hit").remove();
				$("<span class=\"tree-indent\"></span>").prependTo(_b3);
			}
		}
		_24(_ae);
		function del(id) {
			var cc;
			var _b4 = _5e(_ae, _af);
			if (_b4) {
				cc = _b4.children;
			} else {
				cc = $(_ae).treegrid("getData");
			}
			for (var i = 0; i < cc.length; i++) {
				if (cc[i][_b0.treeField] == id) {
					cc.splice(i, 1);
					break;
				}
			}
			return _b4;
		};
	};
	/**
	 * 初始化，构造方法
	 */
	$.fn.treegrid = function(_b5, _b6) {
		var isFirstRender = false;
		
		if (typeof _b5 == "string") {
			var _b7 = $.fn.treegrid.methods[_b5];
			if (_b7) {
				return _b7(this, _b6);
			} else {
				return this.datagrid(_b5, _b6);
			}
		}
		_b5 = _b5 || {};
		
		//zzy+ 选中即扩展行
		$.extend(_b5,{
			onDblClickRow: function(){
				// 获取选中的节点
				var node = $(this).treegrid('getSelected');
				// 扩展当中选中行
				$(this).treegrid('expand', node.id);
			}
		});
		
		// 设置CRUD的相关url
		$.createURL(_b5);
		
		return this.each(function() {
					var _b8 = $.data(this, "treegrid");
					if (_b8) {
						$.extend(_b8.options, _b5);
					} else {
						isFirstRender = true;
						
						var opts = $.extend({},
											$.fn.treegrid.defaults,
											$.fn.treegrid.parseOptions(this),
											_b5);
											
						//zzy+
						$.createURL(opts);					
						
						$.data(this, "treegrid", {
									options : opts,
									data : []
								});
					}
					
					var opts=null;
					if(opts=$.data(this, "treegrid").options){
						if(isFirstRender){
							_1(this);
						}
						
						// 是否自动
						if(opts['autoLoad'] !== false){
							_13(this);
						}
					}
					
				});
	};
	$.fn.treegrid.methods = {
		options : function(jq) {
			return $.data(jq[0], "treegrid").options;
		},
		resize : function(jq, _b9) {
			return jq.each(function() {
						$(this).datagrid("resize", _b9);
					});
		},
		fixRowHeight : function(jq, _ba) {
			return jq.each(function() {
						_14(this, _ba);
					});
		},
		loadData : function(jq, _bb) {
			return jq.each(function() {
						_3b(this, null, _bb);
					});
		},
		reload : function(jq, id) {
			return jq.each(function() {
						if (!$.isEmpty(id)) {
							var _bc = $(this).treegrid("find", id);
							if (_bc.children) {
								_bc.children.splice(0, _bc.children.length);
							}
							var _bd = $(this).datagrid("getPanel")
									.find("div.datagrid-body");
							var tr = _bd.find("tr[node-id=" + id + "]");
							tr.next("tr.treegrid-tr-tree").remove();
							var hit = tr.find("span.tree-hit");
							hit.removeClass("tree-expanded tree-expanded-hover")
									.addClass("tree-collapsed");
							_8d(this, id);
						} else {
							_13(this, null, {});
						}
					});
		},
		reloadFooter : function(jq, _be) {
			return jq.each(function() {
						var _bf = $.data(this, "treegrid").options;
						var _c0 = $(this).datagrid("getPanel")
								.children("div.datagrid-view");
						var _c1 = _c0.children("div.datagrid-view1");
						var _c2 = _c0.children("div.datagrid-view2");
						if (_be) {
							$.data(this, "treegrid").footer = _be;
						}
						if (_bf.showFooter) {
							_bf.view.renderFooter.call(_bf.view, this, _c1
											.find("div.datagrid-footer-inner"),
									true);
							_bf.view.renderFooter.call(_bf.view, this, _c2
											.find("div.datagrid-footer-inner"),
									false);
							if (_bf.view.onAfterRender) {
								_bf.view.onAfterRender.call(_bf.view, this);
							}
							$(this).treegrid("fixRowHeight");
						}
					});
		},
		loading : function(jq) {
			return jq.each(function() {
						$(this).datagrid("loading");
					});
		},
		loaded : function(jq) {
			return jq.each(function() {
						$(this).datagrid("loaded");
					});
		},
		getData : function(jq) {
			return $.data(jq[0], "treegrid").data;
		},
		getFooterRows : function(jq) {
			return $.data(jq[0], "treegrid").footer;
		},
		getRoot : function(jq) {
			return _59(jq[0]);
		},
		getRoots : function(jq) {
			return _5c(jq[0]);
		},
		getParent : function(jq, id) {
			return _5e(jq[0], id);
		},
		getChildren : function(jq, id) {
			return _61(jq[0], id);
		},
		getSelected : function(jq) {
			return _6c(jq[0]);
		},
		getSelections : function(jq) {
			return _6f(jq[0]);
		},
		getLevel : function(jq, id) {
			return _73(jq[0], id);
		},
		find : function(jq, id) {
			return _46(jq[0], id);
		},
		isLeaf : function(jq, id) {
			var _c3 = $.data(jq[0], "treegrid").options;
			var tr = _c3.editConfig.getTr(jq[0], id);
			var hit = tr.find("span.tree-hit");
			return hit.length == 0;
		},
		select : function(jq, id) {
			return jq.each(function() {
						_7e(this, id);
					});
		},
		unselect : function(jq, id) {
			return jq.each(function() {
						_82(this, id);
					});
		},
		selectAll : function(jq) {
			return jq.each(function() {
						_2e(this);
					});
		},
		unselectAll : function(jq) {
			return jq.each(function() {
						_2f(this);
					});
		},
		collapse : function(jq, id) {
			return jq.each(function() {
						_88(this, id);
					});
		},
		expand : function(jq, id) {
			return jq.each(function() {
						_8d(this, id);
					});
		},
		toggle : function(jq, id) {
			return jq.each(function() {
						_94(this, id);
					});
		},
		collapseAll : function(jq, id) {
			return jq.each(function() {
						_98(this, id);
					});
		},
		expandAll : function(jq, id) {
			return jq.each(function() {
						_9d(this, id);
					});
		},
		expandTo : function(jq, id) {
			return jq.each(function() {
						_a2(this, id);
					});
		},
		append : function(jq, _c4) {
			return jq.each(function() {
						_a6(this, _c4);
					});
		},
		remove : function(jq, id) {
			return jq.each(function() {
						_ad(this, id);
					});
		},
		refresh : function(jq, id) {
			return jq.each(function() {
						var _c5 = $.data(this, "treegrid").options;
						_c5.view.refreshRow.call(_c5.view, this, id);
					});
		},
		beginEdit : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("beginEdit", id);
						$(this).treegrid("fixRowHeight", id);
					});
		},
		endEdit : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("endEdit", id);
					});
		},
		cancelEdit : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("cancelEdit", id);
					});
		}
	};
	$.fn.treegrid.parseOptions = function(_c6) {
		var t = $(_c6);
		var cfg = $.extend({}, $.fn.datagrid.parseOptions(_c6), {
					treeField : t.attr("treeField"),
					animate : (t.attr("animate")
							? t.attr("animate") == "true"
							: undefined),
					root: t.attr("root")? $.decode(t.attr("root")) : null, //zzy+
					autoLoad: t.attr("autoLoad")? $.decode(t.attr("autoLoad")) : null, //zzy+
					list: t.attr("list")? $.decode(t.attr("list")) : null, //zzy+
					save: t.attr("save")? $.decode(t.attr("save")) : null, //zzy+
					remove: t.attr("remove")? $.decode(t.attr("remove")) : null //zzy+
				});
		
		// 其他配置项
		if(t.attr("other")){
			cfg = $.extend(cfg, eval(t.attr("other")));
		}
		
		// 查询参数
		if(t.attr('queryParams')){
			cfg['queryParams'] = eval(t.attr("queryParams"));		
		}
		
		return cfg;
	};
	var _c7 = $.extend({}, $.fn.datagrid.defaults.view, {
		render : function(_c8, _c9, _ca) {
			var _cb = $.data(_c8, "treegrid").options;
			var _cc = $(_c8).datagrid("getColumnFields", _ca);
			var _cd = this;
			var _ce = _cf(_ca, this.treeLevel, this.treeNodes);
			var ctEl = $(_ce.join(""));
			$(_c9).append(ctEl);
//			alert($.uuidVal());
//			alert(ctEl.find('tr[node-id*=][uuid*=]').length);
			
//			var indicator = $('<div class="indicator">>></div>').appendTo('body');
//			ctEl.find('tr[node-id*=][uuid*=]').draggable({
//				revert:true,
//				deltaX:0,
//				deltaY:0
//			}).droppable({
//				onDragOver:function(e,source){
//					indicator.css({
//						display:'block',
//						top:$(this).offset().top+$(this).outerHeight()-5
//					});
//				},
//				onDragLeave:function(e,source){
//					indicator.hide();
//				},
//				onDrop:function(e,source){
//					$(source).insertAfter(this);
//					indicator.hide();
//				}
//			});
			
			function _cf(_d0, _d1, _d2) {
				var uuid = $.uuidVal();
				var _d3 = ["<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
				for (var i = 0; i < _d2.length; i++) {
					var row = _d2[i];
					if (row.state != "open" && row.state != "closed") {
						row.state = "open";
					}
					var _d4 = _cb.rowStyler ? _cb.rowStyler.call(_c8, row) : "";
					var _d5 = _d4 ? "style=\"" + _d4 + "\"" : "";
					_d3.push("<tr uuid="+uuid+" node-id=" + row[_cb.idField] + " " + _d5
							+ ">");
					_d3 = _d3.concat(_cd.renderRow.call(_cd, _c8, _cc, _d0,
							_d1, row));
					_d3.push("</tr>");
					if (row.children && row.children.length) {
						var tt = _cf(_d0, _d1 + 1, row.children);
						var v = row.state == "closed" ? "none" : "block";
						_d3
								.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan="
										+ (_cc.length + (_cb.rownumbers ? 1 : 0))
										+ "><div style=\"display:" + v + "\">");
						_d3 = _d3.concat(tt);
						_d3.push("</div></td></tr>");
					}
				}
				_d3.push("</tbody></table>");
				return _d3;
			};
		},
		renderFooter : function(_d6, _d7, _d8) {
			var _d9 = $.data(_d6, "treegrid").options;
			var _da = $.data(_d6, "treegrid").footer || [];
			var _db = $(_d6).datagrid("getColumnFields", _d8);
			var _dc = ["<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
			for (var i = 0; i < _da.length; i++) {
				var row = _da[i];
				row[_d9.idField] = row[_d9.idField] || ("foot-row-id" + i);
				_dc.push("<tr node-id=" + row[_d9.idField] + ">");
				_dc.push(this.renderRow.call(this, _d6, _db, _d8, 0, row));
				_dc.push("</tr>");
			}
			_dc.push("</tbody></table>");
			$(_d7).html(_dc.join(""));
		},
		renderRow : function(_dd, _de, _df, _e0, row) {
			var _e1 = $.data(_dd, "treegrid").options;
			var cc = [];
			if (_df && _e1.rownumbers) {
				cc
						.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
			}
			for (var i = 0; i < _de.length; i++) {
				var _e2 = _de[i];
				var col = $(_dd).datagrid("getColumnOption", _e2);
				if (col) {
					var _e3 = col.styler
							? (col.styler(row[_e2], row) || "")
							: "";
					var _e4 = col.hidden
							? "style=\"display:none;" + _e3 + "\""
							: (_e3 ? "style=\"" + _e3 + "\"" : "");
					cc.push("<td field=\"" + _e2 + "\" " + _e4 + ">");
					var _e4 = "width:" + (col.boxWidth) + "px;";
					_e4 += "text-align:" + (col.align || "left") + ";";
					_e4 += _e1.nowrap == false ? "white-space:normal;" : "";
					cc.push("<div style=\"" + _e4 + "\" ");
					if (col.checkbox) {
						cc.push("class=\"datagrid-cell-check ");
					} else {
						cc.push("class=\"datagrid-cell ");
					}
					cc.push("\">");
					if (col.checkbox) {
						if (row.checked) {
							cc
									.push("<input type=\"checkbox\" checked=\"checked\"/>");
						} else {
							cc.push("<input type=\"checkbox\"/>");
						}
					} else {
						var val = null;
						if (col.formatter) {
							val = col.formatter(row[_e2], row);
						} else {
							val = row[_e2] || "&nbsp;";
						}
						if (_e2 == _e1.treeField) {
							for (var j = 0; j < _e0; j++) {
								cc.push("<span class=\"tree-indent\"></span>");
							}
							if (row.state == "closed") {
								cc
										.push("<span class=\"tree-hit tree-collapsed\"></span>");
								cc.push("<span class=\"tree-icon tree-folder "
										+ (row.iconCls ? row.iconCls : "")
										+ "\"></span>");
							} else {
								if (row.children && row.children.length) {
									cc
											.push("<span class=\"tree-hit tree-expanded\"></span>");
									cc
											.push("<span class=\"tree-icon tree-folder tree-folder-open "
													+ (row.iconCls
															? row.iconCls
															: "")
													+ "\"></span>");
								} else {
									cc
											.push("<span class=\"tree-indent\"></span>");
									cc
											.push("<span class=\"tree-icon tree-file "
													+ (row.iconCls
															? row.iconCls
															: "")
													+ "\"></span>");
								}
							}
//							cc.push("<span class=\"tree-checkbox tree-checkbox1\"></span>");
							cc.push("<span class=\"tree-title\">" + val
									+ "</span>");
						} else {
							cc.push(val);
						}
					}
					cc.push("</div>");
					cc.push("</td>");
				}
			}
			return cc.join("");
		},
		refreshRow : function(_e5, id) {
			var row = $(_e5).treegrid("find", id);
			var _e6 = $.data(_e5, "treegrid").options;
			var _e7 = $(_e5).datagrid("getPanel").find("div.datagrid-body");
			var _e8 = _e6.rowStyler ? _e6.rowStyler.call(_e5, row) : "";
			var _e9 = _e8 ? _e8 : "";
			var tr = _e7.find("tr[node-id=" + id + "]");
			tr.attr("style", _e9);
			tr.children("td").each(function() {
				var _ea = $(this).find("div.datagrid-cell");
				var _eb = $(this).attr("field");
				var col = $(_e5).datagrid("getColumnOption", _eb);
				if (col) {
					var _ec = col.styler
							? (col.styler(row[_eb], row) || "")
							: "";
					var _ed = col.hidden ? "display:none;" + _ec : (_ec
							? _ec
							: "");
					$(this).attr("style", _ed);
					var val = null;
					if (col.formatter) {
						val = col.formatter(row[_eb], row);
					} else {
						val = row[_eb] || "&nbsp;";
					}
					if (_eb == _e6.treeField) {
						_ea.children("span.tree-title").html(val);
						var cls = "tree-icon";
						var _ee = _ea.children("span.tree-icon");
						if (_ee.hasClass("tree-folder")) {
							cls += " tree-folder";
						}
						if (_ee.hasClass("tree-folder-open")) {
							cls += " tree-folder-open";
						}
						if (_ee.hasClass("tree-file")) {
							cls += " tree-file";
						}
						if (row.iconCls) {
							cls += " " + row.iconCls;
						}
						_ee.attr("class", cls);
					} else {
						_ea.html(val);
					}
				}
			});
			$(_e5).treegrid("fixRowHeight", id);
		},
		onBeforeRender : function(_ef, _f0, _f1) {
			if (!_f1) {
				return false;
			}
			var _f2 = $.data(_ef, "treegrid").options;
			if (_f1.length == undefined) {
				if (_f1.footer) {
					$.data(_ef, "treegrid").footer = _f1.footer;
				}
				if (_f1.total) {
					$.data(_ef, "treegrid").total = _f1.total;
				}
				_f1 = this.transfer(_ef, _f0, _f1.rows);
			} else {
				function _f3(_f4, _f5) {
					for (var i = 0; i < _f4.length; i++) {
						var row = _f4[i];
						row.parentId = _f5;
						if (row.children && row.children.length) {
							_f3(row.children, row[_f2.idField]);
						}
					}
				};
				_f3(_f1, _f0);
			}
			var _f6 = _46(_ef, _f0);
			if (_f6) {
				if (_f6.children) {
					_f6.children = _f6.children.concat(_f1);
				} else {
					_f6.children = _f1;
				}
			} else {
				$.data(_ef, "treegrid").data = $.data(_ef, "treegrid").data
						.concat(_f1);
			}
			if (!_f2.remoteSort) {
				this.sort(_ef, _f1);
			}
			this.treeNodes = _f1;
			this.treeLevel = $(_ef).treegrid("getLevel", _f0);
		},
		sort : function(_f7, _f8) {
			var _f9 = $.data(_f7, "treegrid").options;
			var opt = $(_f7).treegrid("getColumnOption", _f9.sortName);
			if (opt) {
				var _fa = opt.sorter || function(a, b) {
					return (a > b ? 1 : -1);
				};
				_fb(_f8);
			}
			function _fb(_fc) {
				_fc.sort(function(r1, r2) {
							return _fa(r1[_f9.sortName], r2[_f9.sortName])
									* (_f9.sortOrder == "asc" ? 1 : -1);
						});
				for (var i = 0; i < _fc.length; i++) {
					var _fd = _fc[i].children;
					if (_fd && _fd.length) {
						_fb(_fd);
					}
				}
			};
		},
		transfer : function(_fe, _ff, data) {
			var opts = $.data(_fe, "treegrid").options;
			var rows = [];
			for (var i = 0; i < data.length; i++) {
				rows.push(data[i]);
			}
			var _100 = [];
			for (var i = 0; i < rows.length; i++) {
				var row = rows[i];
				if (!_ff) {
					if (!row.parentId) {
						_100.push(row);
						rows.remove(row);
						i--;
					}
				} else {
					if (row.parentId == _ff) {
						_100.push(row);
						rows.remove(row);
						i--;
					}
				}
			}
			var toDo = [];
			for (var i = 0; i < _100.length; i++) {
				toDo.push(_100[i]);
			}
			while (toDo.length) {
				var node = toDo.shift();
				for (var i = 0; i < rows.length; i++) {
					var row = rows[i];
					if (row.parentId == node[opts.idField]) {
						if (node.children) {
							node.children.push(row);
						} else {
							node.children = [row];
						}
						toDo.push(row);
						rows.remove(row);
						i--;
					}
				}
			}
			return _100;
		}
	});
	$.fn.treegrid.defaults = $.extend({}, $.fn.datagrid.defaults, {
				treeField : null,
				animate : false,
				singleSelect : true,
				view : _c7,
				loadFilter : function(data, _101) {
					return data;
				},
				editConfig : {
					getTr : function(_102, id) {
						return $(_102).datagrid("getPanel")
								.find("div.datagrid-body tr[node-id=" + id
										+ "]");
					},
					getRow : function(_103, id) {
						return $(_103).treegrid("find", id);
					}
				},
				onBeforeLoad : function(row, _104) {
				},
				onLoadSuccess : function(row, data) {
				},
				onLoadError : function() {
				},
				onBeforeCollapse : function(row) {
				},
				onCollapse : function(row) {
				},
				onBeforeExpand : function(row) {
				},
				onExpand : function(row) {
				},
				onClickRow : function(row) {
				},
				onSelect : function(row) {
				},
				onDblClickRow : function(row) {
				},
				onContextMenu : function(e, row) {
				},
				onBeforeEdit : function(row) {
				},
				onAfterEdit : function(row, _105) {
				},
				onCancelEdit : function(row) {
				},
				eachLoadData : function(row, index) { }// zzy+ 添加加载数据的值的遍历
			});
})(jQuery);


$.extend($.fn.treegrid.methods, {
	/**
	 * 添加记录
	 * @param {} jq jq对象，在调用时看不见
	 * @param {} ops 操作参数，共分3种情况：
	 * 						第一种：为空，则添加一行默认空行
	 * 						第二种: json对象，则添加一行指定记录
	 * 						第三种：json数组，则添加多行指定记录
	 * 						第四种：如：{
	 * 								  rows: [{},{}], //json数组
	 * 								  isEdit: false //不需要编辑
	 * 								  callFun: function(target, rows){}
	 * 								}
	 */
	'add': function(jq, ops){
		// 如果当前已经有文件正在编辑，则不可用
		if(jq.treegrid('getEdittingId') != null){
			$.msg.show({
				title: '提示',
				msg:'当前有行正在编辑，请保存正在编辑的行后进行其他操作!'
			});
			return;
		}
		
		var target = null;
		jq.each(function(){target = this;});
		
		// 获取idField
		var idField = $.data(target, 'treegrid')['options']['idField'];
		
		// 如果为空，则默认添加
		if(!ops){
			var row = {};
			ops = {
				rows: [{}]
			};
		}else if($.isArray(ops)){ // 如果是json数组
			ops = {
				rows: ops
			};			
		}else if(!(ops['rows'] && String(ops['isEdit']))){// 如果是json
			ops = {
				rows: [ops]
			};
		}
		
		ops = $.extend({
			rows: [],
			isEdit: true,
			callFun: function(){}
		}, ops);
		
		
		for (var index = 0; index < ops.rows.length; index++) {
			var row = ops.rows[index];
			
			ops.rows[index] = $.extend({
				iconCls: 'icon-ok',
				state: 'closed'
			}, ops.rows[index]);
			
			if(!ops.rows[index][idField]){
				ops.rows[index][idField] = $.uuidVal();
			}
		}
		
		// 获取选中的节点
		var node = jq.treegrid('getSelected');
		
//		// 展开该几点
//		jq.treegrid('expand', node.id);
		
		// 添加节点
		jq.treegrid('append', {
			parent: (node?node[idField]:null),
			data: ops['rows']
		});
		
		if(ops['isEdit']){
			// 清除选中行
			jq.treegrid('unselectAll');
			
			// 选中当前添加的记录
			jq.treegrid('select', ops['rows'][0][idField]);
			
			$.data(target, 'treegrid')['currentEdittingOldRow'] = ops['rows'][0];
			$.data(target, 'treegrid')['currentEdittingId'] = ops['rows'][0][idField];
			
			jq.treegrid('beginEdit',ops['rows'][0][idField]);
		}
	
		// 执行回调函数
		ops['callFun'](target, ops['rows']);
	},
	/**
	 * 编辑
	 * @param jq jq对象，在调用时看不见
	 */
	'edit': function(jq){
		// 如果当前已经有文件正在编辑，则不可用
		if(jq.treegrid('getEdittingId') != null){
			$.msg.show({
				title: '提示',
				msg:'正在编辑，请保存正在编辑的行后进行其他操作!'
			});
			return false;
		}
		
		var target = null;
		jq.each(function(){target = this});
		
		var node = jq.treegrid('getSelected');
		
		if (node){
			$.data(target, 'treegrid')['currentEdittingOldRow'] = node;
			$.data(target, 'treegrid')['currentEdittingId'] = node[ $.data(target, 'treegrid')['options']['idField']];
			jq.treegrid('beginEdit',node.id);
		}
	},
	'save': function(jq){
		var target = null;
		jq.each(function(){target = this;});
		
		var id = jq.treegrid('getEdittingId');
		if(id == null){
			$.msg.show({
				title: '提示',
				msg:'没有需要保存的记录!'
			});
			return false;
		}
		
		var row = jq.treegrid('getCurrRow', id);
		
		$.exec($.data(target, 'treegrid')['options']['save'], row, function(data){
			$.msg.say("保存成功!");
			// 停止编辑
			jq.treegrid('endEdit', id);
			// 更新界面行记录
			jq.treegrid('updateRow', data);
			
			$.data(target, 'treegrid')['currentEdittingOldRow'] = null;
			$.data(target, 'treegrid')['currentEdittingId'] = null;
		});
		
	},
	'delete': function(jq){
		
		var target = null;
		jq.each(function(){target = this;});
		
		// 获取选中的节点
		var node = jq.treegrid('getSelected');
		
		if(node == null){
			$.msg.say("没有选中要删除的记录，请确认！");
			return;
		}
		
		// 获取idField
		var idField = $.data(target, 'treegrid')['options']['idField'];
		
		$.msg.confirm('询问', '是否删除当前选中记录？', function(r){
			if (r){
				$.exec($.data(target, 'treegrid')['options']['remove'], node, function(data){
					$.msg.say("删除成功!");
					$.data(target, 'treegrid')['currentEdittingOldRow'] = null;
					$.data(target, 'treegrid')['currentEdittingId'] = null;
					jq.treegrid("remove", data[idField]);
				});				
			}
		});

		
	},
	/**
	 * 获取正在编辑的行节点
	 * @param jq jq对象，在调用时看不见
	 */
	'getEdittingId': function(jq){
		var target = null;
		jq.each(function(){target = this;});
		return $.data(target, 'treegrid')['currentEdittingId'];	
	}
});
